<?php
class Prod_producto extends Modelo_base {

	var $table = 'prod_producto';

	var $has_many = array('prod_adjunto', 'prod_moto', 'prod_stock', 'prod_proveedor_producto');
    var $has_one = array('prod_marca', 'prod_modelo', 'prod_subrubro', 'prod_unidad', 'ubic_pais', 'div_divisa', 'prod_tipo');

    // Validaciones de campos
    var $validation = array(
        'codigo' => array(
            'label' => 'Código del producto',
            'rules' => array('required', 'trim', 'max_length' => 10, 'unique'),
            'get_rules' => array('trim')
            ),
        'nombre' => array(
            'label' => 'Nombre',
            'rules' => array('required', 'trim', 'max_length' => 100),
            'get_rules' => array('trim')
            ),
        'descripcion' => array(
            'label' => 'Descripción',
            'rules' => array('trim', 'max_length' => 150),
            'get_rules' => array('trim')
            ),
        'observacion' => array(
            'label' => 'Observación',
            'rules' => array('trim', 'max_length' => 150)
            ),
        'prod_marca' => array(
            'label' => 'Marca',
            'rules' => array('required')
            ),
        'prod_modelo' => array(
            'label' => 'Modelo',
            'rules' => array('required')
            ),
        'prod_subrubro' => array(
            'label' => 'Subrubro',
            'rules' => array('required')
            ),
        'prod_unidad' => array(
            'label' => 'Unidad',
            'rules' => array('required')
            ),
        'existencia_minima' => array(
            'label' => 'Existencia mínima',
            'rules' => array('numeric')
            ),
        'costo' => array(
            'label' => 'Costo',
            'rules' => array('numeric')
            ),
        'margen_ganancia' => array(
            'label' => '% Ganancia',
            'rules' => array('numeric')
            ),
        'baja' => array(
            'label' => 'Baja',
            'rules' => array('boolean')
            ),
        'observacion_baja' => array(
            'label' => 'Observación de Baja',
            'rules' => array('trim', 'max_length' => 120)
            )
    );

    // Optionally, don't include a constructor if you don't need one.
    function __construct($id = NULL)
    {
        parent::__construct($id);
    }

    public function toString()
    {
        $datos = '';
        $datos .= 'Código: ' . $this->codigo . '     ||     ';
        $datos .= 'Nombre: ' . $this->nombre . '     ||     ';
        $datos .= 'Marca: ' . $this->prod_marca->get()->nombre . '     ||     ';
        $datos .= 'Modelo: ' . $this->prod_modelo->get()->nombre;

        return $datos;
    }

    public function getProcedencia()
    {
        return new Ubic_pais($this->ubic_pais_id);
    }

    public function getDivisa()
    {
        return new Div_divisa($this->div_divisa_id);
    }
}

/* End of file prod_producto.php */
/* Location: ./application/models/prod_producto.php */